package top.lshaci.learning.springboot.jpaenhance.config;

import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.persistence.EntityManager;

/**
 * JpaEnhanceConfig
 *
 * @author liangxu
 */
@Configuration
public class JpaEnhanceConfig {

    /**
     * 使用 Query DSL 的功能时，会依赖使用到 {@link JPAQueryFactory}，
     * 而 JPAQueryFactory 在这里依赖使用 {@link EntityManager}，
     * 所以在主类中做如下配置，使得Spring自动帮我们注入 EntityManager 与配置 JPAQueryFactory
     *
     * @param entityManager {@link EntityManager}
     * @return {@link JPAQueryFactory}
     */
    @Bean
    public JPAQueryFactory jpaQueryFactory(EntityManager entityManager) {
        return new JPAQueryFactory(entityManager);
    }
}
